package com.foreknow.demo1;

import java.awt.*;
import java.util.Scanner;

/**
 * 运算符
 *1.算术运算符 + - * / % ++ --
 * ++/-- 表示自增/自减 使用方阿飞：可在变量前后来使用
 * 例如：
 * a++ 先运算然后a自增加1
 * ++a a-- --a
 *
 * 2.赋值运算符 =            复合赋值运算符 += -= *= /= %=  例如 a+=b  a= a+b
 *
 * 3.关系运算符 （比较） > >= <= !=(不等于) 例如： a>b  表达式的最终类型为boolean类型
 *
 * 4.逻辑运算符   &&(与)   ||(或)   ！(非)
 *   运算规则： a && b 只有a b同时为true的时候 最后结果才为true
 *             a || b a和b 只要有一个为true 最后结果为true
 *             ！a ！b 取反
 *
 * 5.三目条件运算符(三元运算符)  例如 int x = (逻辑运算) ？ a : b  a,b,x的类型一定要相同
 */
public class OperatorDemo {
    public static void main(String[] args) {



        //如何接收用户的输入
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int i1 = input.nextInt();// 从控制台接受用户输入的数据并赋值给变量i1


        char xx = (i1 % 2 == 0) ? '对':'错';
        if (i1 % 2 == 0){
            System.out.println('双');
        }else {
            System.out.println('单');
        }
        System.out.println(xx);
        System.out.println("----------------------------------------------------");
        boolean aa = true;
        boolean bb = false;
        boolean cc = aa && bb;
        boolean dd = aa || bb;
        boolean ee = !aa;
        System.out.println(ee);

        //短路:如果能通过第一个表达式的结果判断出最终结果的话，那么第二个表达将不再执行了
        // 企业笔试题： &（位与） 与&&（短路与） 的区别
        int i = 5;
        boolean x = (i++ > 5) && (++i < 8);
        System.out.println(x);
        System.out.println(i);


        System.out.println("---------------------------------------");
        int a = 5;
        int b = 11;
        int c = 1;
        // boolean isRight = a > b; 常用写法
        System.out.println(a>b);



        System.out.println("------------------------------------------------");
//        System.out.println(a += b); // a = a = b
//        System.out.println(a -= b); // a = a - b
//        System.out.println(a *= b); // a = a * b
//        System.out.println(a %= b); // a = a % b
        System.out.println(b /= a);

        short s = 10;
        //s += 1;// 如果 s = s + 1(报错的) s = （short）（s + 1） 手动强制转换类型 +=它可以自动处理类型转换问题



        System.out.println("--------------------------------------------");
        System.out.println(a * b);
        System.out.println(a + b);
        System.out.println(a - b);


//        double d = 5;
//        double d1 = 12;
//        System.out.println(d1 / d)
        System.out.println("--------------------------------------------------");
        int d =c++;// 先将c的值赋予d  c再自增加1
        // int d = ++c； c先加1 再参与运算
        System.out.println(c);
        System.out.println(d);


        int e = 12;
        int f = 13;
        int g = 14;
        int k = (e++)+(--e)+(f++)+(--g);
        System.out.println(f);

    }
}
